package com.googlecode.marrowboy.writers;

import java.io.PrintStream;

import com.googlecode.marrowboy.assertionresult.TestRunDetail;

/**
 * Interface for classes which write reports.
 * 
 * @author mjg
 */
public interface ReportWriter {

	/**
	 * Generate a report and write it somewhere. The implementation can choose
	 * everything about the format of the report.
	 * 
	 * @param messages
	 *            the {@link TestRunDetail} containing all the details which will
	 *            make up the report.
	 * @param stream
	 *            the {@link PrintStream} to write to. {@link System#out} is a
	 *            PrintStream useful for debugging.
	 */
	void writeReport(TestRunDetail messages, PrintStream stream);

}
